<?php

declare(strict_types=1);

use Hyperf\Context\Context;

if (! function_exists('array_only')) {
    /**
     * Get a subset of the items from the given array.
     *
     * @param array $array
     * @param array|string $keys
     * @return array
     */
    function array_only(array $array, array|string $keys): array
    {
        return array_intersect_key($array, array_flip((array) $keys));
    }
}

/**
 * @param array $info
 * @return void
 * 设置管理员信息 上下文
 */
function set_admin_info(array $info): void
{
    Context::set('admin', $info);
}

/**
 * @return array
 * 从上下文中获取管理员信息
 */
function get_admin_info(): array
{
    return Context::get('admin', []);
}

/**
 * Notes: 统一返回
 * Author: Bruce.z
 * DateTime: 2022/6/27 17:05
 * @param $data
 * @return array
 */
function success($data): array
{
    return [
        'code' => 200,
        'msg' => 'success',
        'data' => $data,
    ];
}

/**
 * @param $msg
 * @param array $data
 * @return array
 */
function error($msg, array $data = []): array
{
    return [
        'code' => 0,
        'msg' => $msg,
        'data' => $data,
    ];
}